package com.itheima.service;

import com.github.pagehelper.PageInfo;
import com.itheima.pojo.Admin;
import com.itheima.pojo.AdminVO;
import com.itheima.pojo.Result;
import org.springframework.http.server.reactive.ServerHttpRequest;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

public interface AdminService {

    //获取管理员角色信息
     Map<String, Object> info(String username,HttpServletRequest request) throws Exception;


    /**
     * 查询管理员列表数据
     * @param
     * @return
     */
    PageInfo<Admin> getList(String keyword, Integer currentPage, Integer pageSize);

   //1.添加管理员
    int add(AdminVO adminVO, HttpServletRequest request) throws Exception;

    //2.分配用户角色信息列表
    Map assign(String adminUid) throws Exception;


    //3.用户登录成功后，将令牌存入redis中
    String getJwtFromRedis(String username);

    //4.用户登录成功后，从cookie中获取令牌
    String getJwtFromCookie(ServerHttpRequest request);

     //5. 管理员用户登录
    Result  login(Map map, HttpServletRequest request);

    //6.3 更新管理员密码
    int updatePassWord(Map map);
    //6.1 校验用户名是否存在
    Admin findAdmin1ByName(String userInfo);
    //6.2 校验用户的旧密码是否正确
    Boolean findAdmin2BypassWord(String passWord,Admin admin);


    //7 获取当前用户的菜单
    Map getMenu(Map<String, Object> userInfo) throws Exception;

    //8.更新管理员邮箱或手机号
    int updateEmail(Map map);

    //9.根据管理员uid重置用户密码
    int restPwd(String uid);

    //10. 删除部分管理员信息
    int delete(String adminUidS);

    //11.更新管理员基本信息
    int  edit(AdminVO adminVO,HttpServletRequest request) throws Exception;

    //12. 获取在线管理员
    List<Map<String,Object>> getOnlineAdminList(String uid,HttpServletRequest request);

}
